home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 6
/
FM Towns Free Software Collection 6.iso
/
data
/
pvap317
/
pvaploop.plp
< prev
next >
Wrap
Text File
|
1993-07-08
|
11KB
|
433 lines
/************************************************************************
* PC-VANでの処理 *
************************************************************************/
/* PC-VANでの処理メイン */
%DOvan{
var DATE[24];
var n [3];
var D [2];
var e [2];
%pcvan1{
case (@nth(a,1,{/}),
{SIG}, {SIG},
{BBS}, {BBS},
{CUG}, {CUG},
{OLT広場}, {OLT})
};
%dovan{
case (@nth(@nth(a,2,{/}),1,{>}),
{毎日},pcvan1,
{奇数},{case (@getchar(DATE,10,1),
{1},pcvan1,{3},pcvan1,
{5},pcvan1,{7},pcvan1,
{9},pcvan1)},
{偶数},{case (@getchar(DATE,10,1),
{0},pcvan1,{2},pcvan1,
{4},pcvan1,{6},pcvan1,
{8},pcvan1)},,
{case (@getchar(@nth(a,2,{/}),1,2),
@getchar(DATE,13,2),pcvan1,/* 曜日 */
@getchar(DATE,9,2),pcvan1, /* 日付 */
{複}, {D:=2;
loop({
case(@nth(@nth(@nth(a,2,{/}),1,{>}),D,{,}),
@getchar(DATE,13,2),
{pcvan1;im({No})},
@getchar(DATE,9,2),
{pcvan1;im({No})},
{終わり},
{im({No})},
,{D:=D+1;im({Yes})});
})})});
};
DATE:=@getdt;
n:=0;
loop({
n:=n+1;
%a @getline(PCVAN,n,1);
case (a={},
{Yes}, {im({No})},,
{e:=1;
loop({
case(@nth(@nth(@nth(a,2,{/}),2,{>}),e,{,}),
{終日},{dovan;im({No})},
{昼間},{case(@getchar(@daylong,{16},{2}),
{10},{dovan;im({No})},
{11},{dovan;im({No})},
{12},{dovan;im({No})},
{13},{dovan;im({No})},
{14},{dovan;im({No})},
{15},{dovan;im({No})},
{16},{dovan;im({No})},
{17},{dovan;im({No})},,
{e:=e+1;im({Yes})})},
{夜1},{case(@getchar(@daylong,{16},{2}),
{18},{dovan;im({No})},
{19},{dovan;im({No})},
{20},{dovan;im({No})},
{21},{dovan;im({No})},,
{e:=e+1;im({Yes})})},
{夜2},{case(@getchar(@daylong,{16},{2}),
{22},{dovan;im({No})},
{23},{dovan;im({No})},
{00},{dovan;im({No})},,
{e:=e+1;im({Yes})})},
{夜中},{case(@getchar(@daylong,{16},{2}),
{01},{dovan;im({No})},
{02},{dovan;im({No})},
{03},{dovan;im({No})},,
{e:=e+1;im({Yes})})},
{朝},{case(@getchar(@daylong,{16},{2}),
{04},{dovan;im({No})},
{05},{dovan;im({No})},
{06},{dovan;im({No})},
{07},{dovan;im({No})},
{08},{dovan;im({No})},
{09},{dovan;im({No})},,
{e:=e+1;im({Yes})})},
{未定},{im({No})},
{終わり},{im({No})},
{},{dovan;im({No})},,{e:=e+1;im({Yes})});
});
im({Yes})});
});
};
/* 各メニューにジャンプし各未読を見る */
%Jump{
[jump]
LOGSAVE;
type({J }|JUMP|{\n});
loop({
wait ({60},STOP,
{訂正}, {WAIT;SNDMSG({okasi_f.snd});
display({\nジャンプコードが間違っています\n});
im({No})},
{リターンキーを押して下さい=},
{type({\n});im({Yes})},
{よろしいですか(Y,N)=},
{type({\n});im({Yes})},
{よろしいですか=},
{type({\n});im({Yes})},
{,J)=}, {jump;im({No})},
{番号またはコマンド=},
{jump;im({No})});
});
};
/* SIG内での処理 */
%SIG{
MFORUM:={};
MKAIGI:={};
B:={No};
%JUMP @nth(a,3,{/});
footnote(JUMP|{での処理をしています});
%sig{
%NUMBER1 @nth(a,4,{/});
case (NUMBER1={},
{No}, {type({3\n});
footnote(JUMP|{の}|NUMBER1|
{番フォーラムの未読を見ています});
WAIT;FREAD({FORUM});type({M\n});WAIT});
%NUMBER1 @nth(a,5,{/});
case (NUMBER1={},
{No}, {type({5\n});
footnote(JUMP|{の}|NUMBER1|
{番会議室の未読を見ています});
wait({60},STOP,
{現在このサービスは行っていません},
{WAIT;
SNDMSG({okasi_f.snd});
display({\nこのSIGには}|
{会議室がありません\n})},
{,J)=}, {KREAD;type({M\n});WAIT},
{番号またはコマンド=},
{KREAD;type({M\n});WAIT})});
%NUMBER1 @nth(a,6,{/});
case (NUMBER1={},
{No}, {type({7\n});
footnote(JUMP|{の}|NUMBER1|
{番OSLのリストを見ています});
wait({60},STOP,
{現在このサービスは行っていません},
{WAIT;
SNDMSG({okasi_f.snd});
display({\nこのSIGには}|
{OSLがありません\n})},
{,J)=}, {OSLCHK;type({M\n});WAIT},
{番号またはコマンド=},
{OSLCHK;type({M\n});WAIT})});
%NUMBER1 @nth(a,7,{/});
case (NUMBER1={},
{No}, {type({4\n});
footnote(JUMP|{の}|NUMBER1|
{番ライブラリのリストを見ています});
wait({60},STOP,
{現在このサービスは行っていません},
{WAIT;
SNDMSG({okasi_f.snd});
display({\nこのSIGには}|
{ライブラリがありません\n})},
{,J)=}, {LIBCHK},
{番号またはコマンド=},
{LIBCHK})});
};
Jump(sig);
case(SAVE,{JUMPCODE},{case(REC,{Yes},{REC:={No};stoprec})});
LOGDEL;
MFORUM:=@body(MFORUM,{,});
MKAIGI:=@body(MKAIGI,{,});
case (MFORUM={}&&MKAIGI={},
{No},{write (DIR1|{\PVAPRESU.DAT},
{SIG/}|JUMP|{/}|MFORUM|{/}|MKAIGI|{/\n})});
};
/* フォーラム・掲示板の未読を表示 */
%FREAD{
[WHERE]
C:=1;
loop({
%NUMBER2 @nth(NUMBER1,C,{,});
type({RN}|NUMBER2|{\n});
wait({60},STOP,
{新しいメッセージは、ありません。},
{WAIT;case (@nth(NUMBER1,C+1,{,})={},
{No}, {C:=C+1;im({Yes})},
{Yes}, {im({No})})},
{****},
{B:={Yes};
MFORUM:=MFORUM|{,}|NUMBER2;
WAIT;
case(WHERE,{BBS},{LogSave2},,{LogSave});
type({RB-\n});
WAITrb;
case(SAVE,{BOARD},{case (REC,{Yes},{REC:={No};stoprec})});
case (@nth(NUMBER1,C+1,{,})={},
{No}, {type({F\n});WAIT;C:=C+1;im({Yes})},
{Yes}, {im({No})});});
});
};
/* 会議室の未読を見る */
%KREAD{
C:=1;
loop({
%NUMBER2 @nth(NUMBER1,C,{,});
type(NUMBER2|{\n});
WAIT;
type({RN\n});
wait({60},STOP,
{新しいメッセージは、ありません。},
{WAIT;case (@nth(NUMBER1,C+1,{,})={},
{No}, {type({S\n});WAIT;C:=C+1;im({Yes})},
{Yes}, {im({No})})},
{****},
{B:={Yes};
MKAIGI:=MKAIGI|{,}|NUMBER2;
WAIT;
WHERE:={KAIGI};LogSave;
type({RB-\n});
WAITrb;
case(SAVE,{BOARD},{case (REC,{Yes},{REC:={No};stoprec})});
case (@nth(NUMBER1,C+1,{,})={},
{No}, {type({S\n});WAIT;C:=C+1;im({Yes})},
{Yes}, {im({No})});});
});
};
/* OSLを見る */
%OSLCHK{
A:=1;
C:=1;
case (SAVE,
{BOARD},{dispoff({Yes});
command({del }|LOGPATH|{\}|JUMP|{\OSLLIST.LOG});
dispoff({No});
receive(LOGPATH|{\}|JUMP|{\OSLLIST.LOG});
REC:={Yes}});
loop({
%NUMBER2 @nth(NUMBER1,C,{,});
type(NUMBER2|{\n});
WAIT;
type({2\n});
loop({
WAIT;
case (LIST=A,
{Yes},{im({No})},
{No}, {A:=A+1;type({\n});im({Yes})});
});
case (@nth(NUMBER1,C+1,{,})={},
{No}, {type({S\n});WAIT;C:=C+1;im({Yes})},
{Yes}, {im({No})});
});
case(SAVE,{BOARD},{case(REC,{Yes},{REC:={No};stoprec})});
};
/* ライブラリを見る */
%LIBCHK{
A:=1;
C:=1;
case (SAVE,
{BOARD},{dispoff({Yes});
command({del }|LOGPATH|{\}|JUMP|{\LIBLIST.LOG});
dispoff({No});
receive(LOGPATH|{\}|JUMP|{\LIBLIST.LOG});
REC:={Yes}});
loop({
%NUMBER2 @nth(NUMBER1,C,{,});
type(NUMBER2|{\n});
loop({
WAIT;
case (LIST=A,
{Yes},{im({No})},
{No}, {A:=A+1;type({\n});im({Yes})});
});
case (@nth(NUMBER1,C+1,{,})={},
{No},{type({S\n});WAIT;C:=C+1;im({Yes})},
{Yes},{im({No})});
});
case(SAVE,{BOARD},{case(REC,{Yes},{REC:={No};stoprec})});
};
/* BBS内での処理 */
%BBS{
MFORUM:={};
B:={No};
%JUMP @nth(a,3,{/});
footnote(JUMP|{での処理をしています});
%bbs{
%NUMBER1 @nth(a,4,{/});
case (NUMBER1={},
{No}, {footnote(JUMP|{の}|NUMBER1|{番の未読を見ています});
FREAD({BBS})});
};
Jump(bbs);
case(SAVE,{JUMPCODE},{case(REC,{Yes},{REC:={No};stoprec})});
LOGDEL;
MFORUM:=@body(MFORUM,{,});
case(MFORUM={},{No},{write(DIR1|{\PVAPRESU.DAT},
{BBS/}|JUMP|{/}|MFORUM|{/\n})});
};
/* CUG内での処理 */
%CUG{
%cug{
%NUMBER1 @nth(a,6,{/});
case (NUMBER1={},
{No}, {type(@nth(a,5,{/})|{\n});
footnote(JUMP|{の}|NUMBER1|{番掲示板の}|
{未読を見ています});
WAIT;FREAD({KEIJI});type({M\n});WAIT});
%NUMBER1 @nth(a,8,{/});
case (NUMBER1={},
{No}, {type(@nth(a,7,{/})|{\n});
footnote(JUMP|{の}|NUMBER1|{番会議室の}|
{未読を見ています});
WAIT;KREAD;type({M\n});WAIT});
%NUMBER1 @nth(a,10,{/});
case (NUMBER1={},
{No}, {type(@nth(a,9,{/})|{\n});
footnote(JUMP|{の}|NUMBER1|{番OSLの}|
{リストを見ています});
WAIT;OSLCHK;type({M\n});WAIT});
%NUMBER1 @nth(a,12,{/});
case (NUMBER1={},
{No}, {type(@nth(a,11,{/})|{\n});
footnote(JUMP|{の}|NUMBER1|{番ライブラリの}|
{リストを見ています});
WAIT;LIBCHK});
};
MFORUM:={};
MKAIGI:={};
B:={No};
%JUMP @nth(a,3,{/});
footnote(JUMP|{での処理をしています});
LOGSAVE;
type({J CUG\n});
loop({
wait({60},STOP, {よろしいですか(Y,N)=},
{type({\n});im({Yes})},
{よろしいですか=},
{type({\n});im({Yes})},
{CUGコードまたはコマンド(M,H,Q,CM,J)=},
{type(JUMP|{\n});im({No})},
{CUGコードまたはコマンド=},
{type(JUMP|{\n});im({No})});
});
wait ({60},STOP,
{未契約},{WAIT;
SNDMSG({okasi_f.snd});
display({\未契約のCUGです\n})},
{訂正}, {WAIT;
SNDMSG({okasi_f.snd});
display({\nCUGコードが間違っています\n})},
{PASSWORD:},
{type(@nth(a,4,{/})|{\n});WAITa;cug});
case(SAVE,{JUMPCODE},{case(REC,{Yes},{REC:={No};stoprec})});
LOGDEL;
MFORUM:=@body(MFORUM,{,});
MKAIGI:=@body(MKAIGI,{,});
case (MFORUM={}&&MKAIGI={},{No},
{write (DIR1|{\PVAPRESU.DAT},
{CUG/}|JUMP|{/}|MFORUM|{/}|MKAIGI|{/\n})});
};
/* OLT広場の未読を見る */
%OLT{
B:={No};
footnote({OLT広場の未読を見ています});
%JUMP {OLT};
type({J }|JUMP|{\n});
wait({60},STOP, {よろしいですか(Y,N)=}, {type({\n});WAIT},
{よろしいですか=}, {type({\n});WAIT},
{番号またはコマンド=},,
{,J)=},);
type({3\n});
WAIT;
type({1\n});
%WAIT1{wait({120},STOP,
{訂正}, WAIT,
{タイトル}, {B:={Yes};
A:=@tail(@laststr,{#},{/});
WAIT;
case (SAVE={JUMPCODE}||SAVE={BOARD},
{Yes},
{case (preser,
{ 1}, {mkdir2(LOGPATH|{\}|JUMP);
LOGFILE:=@crefile(LOGPATH|{\}|
JUMP,{LOG});
receive(LOGPATH|{\}|JUMP|{\}|
LOGFILE);
REC:={Yes}})});
loop({
type({RB}|A|{,}|A+1|{,}|A+2|{,}|A+3|{,}|A+4|{\n});
wait({300},STOP,
{訂正して},
{WAIT;im({No})},
{ありません。\n\n}|{番号または},
{WAIT;im({No})},
{,J)=},
{A:=A+5;im({Yes})},
{<FM>=},
{A:=A+5;im({Yes})});
});});
};
WAIT1;
case (SAVE={JUMPCODE}||SAVE={BOARD},
{Yes},{case(REC,{Yes},{REC:={No};stoprec})});
LOGDEL;
case(B,{Yes},{write(DIR1|{\PVAPRESU.DAT},{OLT広場/\n})});
};
/* 実行 */
var MFORUM [20];
var MKAIGI [20];
DOvan;